The present invention relates to the field of user interfaces, more particularly to automatically arranging widgets of a model within a canvas using iterative region based widget relative adjustments.
Graphical diagrams can be useful for many things, such as conveying a set of information or planning out the placement of a set of objects. Graphical diagrams can be created using graphical editor computer applications. These applications can allow a user to create a model, which can be a collection of discrete graphically render-able objects called widgets. The presentation of these widgets on the canvas can be a graphical diagram. Graphical editors can display a canvas, which can be a visible portion of a model displayed in the graphical editor. Different view modes can be applied and effect the display of the model and the widgets it contains. Relationships or connections can exist between widgets. Depending on the semantic content of the model being displayed, different relationships can exist between widgets.
Changes in the widgets of a model can have a negative effect on the overall layout of the model and can cause layout inconsistencies. These changes can include the expanding or collapsing of widgets, resizing widgets, adding widgets to a crowded layout, and the like. A common example of a layout inconsistency can be overlapping widgets. Current graphical editors attempt to remedy this by containing a rudimentary auto-arrangement option that uses a “snap-to-grid,” where the layout is divided into a grid and each widget automatically snaps to each point, or node, in the grid. A significant amount of effort is often required to make an automatically adjusted model presented on a canvas presentable using this technique. When widgets are altered in the graphic editor (i.e. collapsed/expanded, resized, added), it can result in layout inconsistencies, and therefore a completely new set of manual adjustment requirements. A solution is required to reduce the manual effort required to maintain a presentable canvas when widgets are automatically arranged.